home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-08-10 | 2.6 KB | 115 lines | [TEXT/MPS ] |
- (*
- File: RTLib.mod
-
- Copyright: © 1983-1993 by Apple Computer, Inc.
- All rights reserved.
-
- Version: System 7.1 for ETO #11
- Created: Tuesday, March 30, 1993 18:00
-
- *)
-
- (*$TAGS-*)
- (*$CALLING PASCAL*)
- MODULE RTLib;
-
- IMPORT SYSTEM, Types;
-
-
- CONST
- (*
- Error Codes
- *)
- eRTNoErr* = 0;
- eRTBadVersion* = 2;
- eRTInvalidOp* = 4;
- eRTInvalidJTPtr* = 6;
-
- (*
- Action Codes
- *)
- kRTSysErr* = 0;
- kRTRetry* = 1;
- kRTContinue* = 2;
-
- (*
- Runtime Operations
- *)
- kRTGetVersion* = 10;
- kRTGetVersionA5* = 11;
- kRTGetJTAddress* = 12;
- kRTGetJTAddressA5* = 13;
- kRTSetPreLoad* = 14;
- kRTSetPreLoadA5* = 15;
- kRTSetSegLoadErr* = 16;
- kRTSetSegLoadErrA5* = 17;
- kRTSetPostLoad* = 18;
- kRTSetPostLoadA5* = 19;
- kRTSetPreUnload* = 20;
- kRTSetPreUnloadA5* = 21;
- kRTPreLaunch* = 22;
- kRTPostLaunch* = 23;
-
- (*
- Version Definitions
- *)
- kVERSION32BIT* = $FFFF;
- kVERSION16BIT* = $0000;
-
-
- TYPE
- (*
- RTState Definition
- *)
- RTState* = RECORD
- fVersion*: INTEGER; (* run-time version *)
- fSP*: Types.Ptr; (* SP*: &-of user return address *)
- fJTAddr*: Types.Ptr; (* PC*: &-of called jump table entry *)
- fRegisters*: ARRAY 15 (*ΔΔ[0..14]ΔΔ*) OF LONGINT; (* registers D0-D7 and A0-A6 when *)
- (* _LoadSeg was called *)
- fSegNo*: INTEGER; (* segment number *)
- fSegType*: Types.ResType; (* segment type (normally LONG("CODE")) *)
- fSegSize*: LONGINT; (* segment size *)
- fSegInCore*: BOOLEAN; (* true if segment is in memory *)
- fReserved1*: BOOLEAN; (* (reserved for future use) *)
- fOSErr*: Types.OSErr; (* error number *)
- fReserved2*: LONGINT; (* (reserved for future use) *)
- END;
-
- RTStatePtr* = POINTER TO RTState;
-
- (*
- Runtime Parameter Block
- *)
-
- (*ΔΔ RTParam* = (RTGetVersionParam, RTGetJTAddrParam, RTSetSegLoadParam);*)
- RTParam* = SHORTINT;
- CONST
- RTGetVersionParam* = 0; RTGetJTAddrParam* = 1; RTSetSegLoadParam* = 2;
- TYPE
-
- RTPB* = RECORD
- fOperation*: INTEGER; (* operation *)
- fA5*: Types.Ptr; (* A5-world *)
- END;
- RTGetVersionPB* = RECORD(RTPB)
- fVersion*: INTEGER; (* run-time version (returned) *)
- END;
- RTGetJTAddrPB* = RECORD(RTPB)
- fJTAddr*: Types.Ptr; (* ptr to jt entry *)
- fCodeAddr*: Types.Ptr; (* code address w/i jt entry (returned) *)
- END;
- RTSetSegLoadPB* = RECORD(RTPB)
- fUserHdlr*: Types.Ptr; (* ptr to user handler *)
- fOldUserHdlr*: Types.Ptr; (* ptr to old user handler (returned) *)
- END;
-
- RTPBPtr* = POINTER TO RTPB;
-
-
- PROCEDURE Runtime* (runtime_parms: RTPBPtr): Types.OSErr;
- EXTERNAL PASCAL;
-
-
- END RTLib.
-